package cn.xxi.ai.application.entity;

import cn.xxi.ai.application.constant.ChatModel;
import cn.xxi.ai.common.entity.BaseEntity;
import cn.xxi.ai.knowledge.entity.Knowledge;
import cn.xxi.ai.workflow.entity.Workflow;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * AgentConfig - 智能体配置实体类
 *
 * 包含智能体的提示词、使用的工具、知识库、模型配置等信息。
 * 基于 BaseEntity 提供主键、时间等基础字段。
 * 
 * @author bingo
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class AgentConfig extends BaseEntity {

    /** 所属智能体 */
    private Agent agent;

    /** 预设提示词 */
    private String prePrompt;

    /** 工具列表 */
    private List<Tool> tools;

    /** 知识库列表 */
    private List<Knowledge> knowledge;

    /** 工作流列表 */
    private List<Workflow> workflows;

    /** 使用的聊天模型 */
    private ChatModel chatModel;

    /** 是否开启记忆能力 */
    private Boolean memory;

    /** 是否启用开场白 */
    private Boolean opening;

    /** 开场白内容 */
    private String openingRemark;

    /** 开场问题列表 */
    private List<String> openingQuestions;
}